The invention relates to the field of computer science, and more specifically, to a computer-method implemented and a system program for writing data across storage devices in an erasure-coded system.
Some data storage systems using RAID (Redundant Array of Independent Disks) employ hardware RAID controllers that compute the parities for a set of user data blocks and store them across a given set of storage devices.
As the system scales out, many RAID controllers are used with each RAID controller assigned to a given set of storage devices. By design, such a system has a clustered placement of the data and parity.
Some systems using RAID are part of a larger class of systems that use erasure codes. For erasure-coded systems, recent research has shown that placement schemes other than clustered (e.g. de-clustered) have significant advantage in terms of reliability when the number of parities in the erasure code is greater than one (e.g. RAID-6, 3-way replication). Placement schemes such as de-clustered placement have been implemented in software for various erasure codes. However, such software implementations may experience severe performance degradation when the system size scales or when the workload increases.